raFS

raFS is a filing system which allows for files with long filenames and for any number of objects in directories. It stores the files you save to it on a "host filing system", e.g. ADFS, as individual files.

raFS is Freeware, written by Richard Atterer.


Part I - User Manual

Part II - Technical Details


Release note for version 1.15 (14-11-1998)

raFS is now very stable. Nevertheless, this does not mean you shouldn't be careful when entrusting your valuable data to this program. I encourage you to back up important data that you write to raFS.

The verify functionality, which is new in V1.14, is still considered beta. Please tell me about any bugs!

Important things to remember when using raFS:

If raFS doesn't behave as it should and the behaviour is not described in the Known problems section, please please contact me with a bug report. Describe the circumstances under which raFS failed as closely as possible. Has this occurred repeatedly in the same situation? What machine, OS version and host filing system do you use?

In case raFS overwrites the only copy of your Favourite File, don't say I didn't warn you...


Introduction

The limits imposed by the standard Acorn filing systems (all those that use FileCore), which prohibit filenames longer than 10 characters and more than 77 objects in a directory have always annoyed people. Because of this, there have been several products which attempt to bypass FileCore. Many of them are image filing systems, i.e. filing systems that access single files on disc as if they were whole discs containing files and directories:

raFS is neither an image filing system nor a hack: It has been written as "normal" filing system. The files that you save to raFS aren't stored in one large file, but as individual files in a directory structure that the program sets up on another filing system. This means that you can take full advantage of the "host" filing system's abilities to manage files, which is much more effective. Additionally, there are much better chances of retrieving your data in case something goes wrong.

raFS has the following features:

This documentation has been split up into two parts. The first part is aimed at people who want to use raFS on the desktop, whereas the second part describes the filing system's interfaces in greater detail. It is not necessary to read it as most of the information is only relevant for advanced users and programmers.

I hope you find this a useful program!

Back to the top of the page


Usage

raFS is loaded into memory by double-clicking on !raFS or on a disc application directory (like the example !raFSDisc) in a directory viewer. It will install an icon on the icon bar. You may want to copy the !raFS application into your !Boot.Choices.Boot.PreDesk directory to have it loaded every time the computer is switched on.

Before you start, the way raFS manages its discs should be clear to you. Actually, the word "disc" may be misleading - raFS does not introduce a new disc format of its own. I will talk of "discs" nevertheless because they are handled in the same way as e.g. ADFS handles floppy discs: They can be created, renamed, mounted and dismounted, and their name will appear in directory displays in the form "raFS::DiscName.$. ..." Unlike with image filing systems, raFS' discs are not stored in one large file, but as single files inside a directory.

raFS can store the data saved to discs in two types of directory: One is an application directory whose name begins with "!" and which is displayed with a special icon. The second is a normal directory, which cannot be distinguished from other directories until you double-click on it. If you do this and raFS is loaded, raFS mounts (i.e. makes known to the system) the disc contained within that directory and opens the root directory of the raFS disc instead of the directory you clicked on.

If the program is not loaded when you double-click on a normal directory containing a raFS disc, or if it is loaded but you hold down the Shift key while clicking, you will see the actual directory contents: A file called !Atterer (yes, I know I'm humble to call it like that), one called !Mount and a directory A0 with further subdirectories and similarly named files.

Don't change or delete any of these files unless you know what you are doing!

It should be noted that raFS distinguishes its own directories from other ones by looking for the !Mount file and just executing it with Obey when the directory is about to be opened. The default file also installs raFS on the icon bar if it isn't already loaded, so just double-click on !Mount if you wanted to open an raFS directory, but raFS wasn't loaded. (The reason why Obey and not just Run is used is that the file's filetype may not be correct - for instance, if you burn an raFS disc onto CD ROM using a PC.)

When you mount a disc, a file named Lock is created inside the storage directory, and it is removed again when the disc is dismounted. This is used to test whether the storage directory can be written to, and the file contents help to recognize the disc when you rename the storage directory. If a disc has not been mounted before, but a Lock file is already present, raFS either refuses to mount the disc (e.g. if it is shared over a network and has been mounted on a different machine) or gives a warning, telling you to verify it, but nevertheless mounting it (because your computer crashed or was reset since the disc was first mounted).

Back to the top of the page

Working with discs

The icon bar menu offers many commonly needed operations on mounted discs. If no discs are mounted at all, the entries below the dotted line are greyed out.
  • Read-only lets you write-protect discs so that any subsequent attempts to alter the data on them will be faulted. If a disc is write-protected, its name is ticked in the submenu. This option does not work for discs stored on DOSFS due to incorrect behaviour of that filing system.
  • With Name disc, you can change the name of a disc. (You guessed it!)
  • Dismount removes the selected disc from the list of discs known to RiscOS - any subsequent accesses to the disc will fail with Disc not present. You can also dismount all discs by selecting the "Dismount" menu entry without moving to the submenu.
  • Selecting a disc name in the Verify submenu starts a verify operation for that disc - see below for details.
  • Open root opens the root directory for the selected disc, or for all mounted discs if the entry in the main icon bar menu is selected.

Important: Should you ever want to move a storage directory or rename the (hard)disc it resides on, re-mount the disc afterwards (e.g. by double-clicking on it) so that raFS knows about the new name.

[The icon bar menu]

The Flush menu entry is not normally needed. When you select it, all changed but as yet unsaved directories are saved within the discs' storage directories. You should manually flush raFS' buffers if the program was unable to save changes automatically due to an error. (For example, you should flush if you clicked on Cancel when you were asked to insert a floppy disc with an raFS disc stored on it.)

Back to the top of the page

Creating new discs

New discs can easily be created from the window that is opened when the pointer is moved right over the New disc menu entry. You can choose whether to use an application or a normal directory with the "App" option (or by preceding the storage directory's leafname with "!"). Having also entered a name for the new disc, drag the icon to a directory viewer to create the disc. [The 'Create new disc' window]

raFS has the useful ability to let you use a whole hard or floppy disc for one of its own discs. When you click e.g. on the floppy drive icon to display the root directory, the program looks for the !Mount file just like it does for double-clicks on directory symbols. To create a disc like this, enter the name of the hard or floppy disc's root directory (e.g. ADFS::HD.$) in the first writable, choose a name for the new disc and finally click on Create.

Back to the top of the page

The Choices window

Clicking with Adjust on the raFS icon bar icon while the Shift key is pressed or selecting the Choices... menu entry opens a window with various settings that influence the program's behaviour. You can also save your preferences from here.

Storage dirs mounted on startup: In the writable fields of this section you can enter the names of up to three discs by dragging the storage directories to the fields. raFS will then mount these discs automatically every time it is run.

Commands for clicks on icon bar: The commands executed when the icon bar icon is clicked on can be changed here independently for Select/Adjust and any combination of the Shift/Ctrl keys. See here for details on the commands used by the default settings. By default, clicks cause the following actions:

Directory cache: This part of the window controls raFS' directory cache, which is used by the filing system to speed up accesses to its discs. When you make changes to a directory, e.g. by deleting a file, the changed directory information is not saved to the host filing system immediately, but only after a certain delay or after a given number of modifications, whichever of the two happens first.

Note: The fact that directories are usually only saved after a delay means that if you change the directory contents and then reset your computer immediately afterwards (or it crashes), the directory information as stored on the host filing system will not yet have been brought up to date. If you open the directory again later, deleted files will still appear to exist and new files won't appear in the directory display! This must be prevented from happening, so if you run software that crashes a lot, especially while accessing the filing system, you should disable the delay as follows:

For both the field where the delay in centiseconds is entered and the field containing the number of modifications, the values 0 and 1 have a special meaning: 0 tells raFS to completely disable saving of directories automatically after a delay or after any number of modifications, respectively. (If both values are 0, changed directories are only saved to make room if the maximum directory cache size has been reached, and when discs are dismounted.) A value of 1 in either of the two fields forces immediate write-through of any changes to the host filing system. (If you know a little about *commands, you can deal more elegantly with frequently crashing applications by adding raFS_Unsafe and raFS_Safe commands to their !Run files.)

Miscellaneous: A number of options for raFSFiler.

At the bottom of the window there are four buttons: Default fills in the "factory default" values for all the fields bar the first three. Save causes the values to be used and also stores them on disc. The Cancel button prevents any changes made to the fields from coming into effect - you can also click on it with Adjust to have the current values filled in once more. Finally, Set makes raFS use the supplied values, but only for the current session. If you click on the last three buttons with Select, the Choices window is closed; if you use Adjust, it remains open.

Back to the top of the page


Verifying corrupted discs

Sometimes, raFS discs can become corrupted. The most common cause for this is that the computer crashed after data had been saved, but before the changed directory data could be written back to the host filing system. Typically, some files can no longer be accessed after this has happened, some that had just been saved don't appear in the directory, or files that had been deleted still appear to be present.

Do not attempt to delete those files of a corrupted disc that give errors - by doing this, you might delete the data of other files!

The verify operation offers a means to detect and repair corrupted discs. To start verifying, select the disc name from the Verify submenu of the icon bar menu (or use the Verify command). Instead of clicking on the disc name you can also just select the Verify entry, which automatically picks those discs for verifying that caused errors earlier on. The names of the directories being scanned will be printed, along with other messages, some of which need further explaining:

Any unreferenced directories and files that are found are copied into the Lost+Found directory raFS creates in the disc's root directory.

Back to the top of the page


Contacting the author

If you want to send me a bug report, have some suggestions about what future versions of raFS should support, or just generally want to tell me how absolutely wonderful it is, you can contact me either by email (preferred) or by "ordinary" mail.

My email address is atterer@augsburg.baynet.de (PGP key). To get the latest version of raFS, have a look at my homepage at http://home.augsburg.baynet.de/richard.atterer/.

In case you want to pay me a visit and beat me up because raFS corrupted all your data, this is the snail mail address:

        Richard Atterer
        Beethovenstraße 30
        86391 Stadtbergen
        Germany

Back to the top of the page


Version history

Many thanks to the following people for suggestions and bug reports: Stefan Bellon, Emil Brunavs, Peter Burwood, Nick Clark, Dave Daniels, Justin Fletcher, Mike Gregory, Tony Houghton, Rick Hudson, Hans de Jong, James Larcombe, Vincent Lefevre, Marko Lukat, Robin Moffatt, Jakob Stoklund Olesen, David Pilling, Tim Rowledge, Darren Salt, Reiner Schulz, Dick Tanis, David Thomas, Reuben Thomas, Martin Tillman.

V1.15 (14-11-1998)

V1.14 (15-10-1998) V1.13 (10-05-1998) V1.12 (22-02-1998)

Released on an Acorn User cover disc.

V1.11 (14-02-1998) V1.10 (10-01-1998) V1.02 beta (30-11-1997) V1.01 beta (09-11-1997) V1.00 beta (30-10-1997)

Back to the top of the page


Copyright

This program is Freeware, © Copyright 1997, 1998 by Richard Atterer.

No profit must be made when the program is spread - any charges must not exceed the cost of spreading (e.g. discs, postage). You must always pass on all files of the program, including this copyright notice.

You may distribute this program together with any other product, commercial or non-commercial, that depends on or is enhanced by this program, without informing the author in advance. If you re-distribute the program in this way, you are obliged to send one copy of your product, and of any further versions as long as they still include this program, to the above address free of charge. (When sending to the email address, please ask before sending large archives.)

Because this program is distributed free of charge, there is no warranty for the program, to the extent permitted by applicable law. Except when otherwise stated in writing, the author provides the program "as is", without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program is with you. Should the program prove defective, you assume the cost of all necessary servicing, repair or correction.

In no event unless required by applicable law or agreed to in writing will the author be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the program (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the program to operate with any other programs), even if the author has been advised of the possibility of such damages.

Back to the top of the page